package com.tjbank.cssys.web.controller;

import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;

import com.tjbank.cssys.api.ApiService;
import com.tjbank.cssys.dto.ApiDTO;
import com.tjbank.cssys.web.config.GetUserCodeFromToken;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;

import com.tjbank.cssys.framework.base.api.BaseController;
import com.tjbank.cssys.framework.base.api.Response;

import java.util.Date;
import java.util.UUID;

/**
 * api
 * 
 * Package : com.tansun.magicube.iam.web.controller
 * 
 * @author -- lijiangtao 2020年5月12日 下午4:12:37
 *
 */
@RestController
public class ApiController extends BaseController {

	@Autowired
	private ApiService apiService;

	private static final Logger logger =LoggerFactory.getLogger(ApiController.class);
	/**
	 * 新增
	 * 
	 * @param apiDTO
	 * @return
	 * @author -- lijiangtao 2020年5月22日 下午3:35:53
	 */
	@PostMapping("/interface")
	public Response<?> addApi(@RequestBody @Valid ApiDTO apiDTO , HttpServletRequest request) {




		return this.success(apiService.addApi(apiDTO));
	}

	/**
	 * 更新
	 * 
	 * @param apiDTO
	 * @return
	 * @author -- lijiangtao 2020年5月24日 下午3:37:25
	 */
	@PutMapping("/interface")
	public Response<?> updateApi(@RequestBody @Valid ApiDTO apiDTO ,HttpServletRequest request) {
		String userCode=null;
		try {
			userCode= GetUserCodeFromToken.getUserCode(request);
		} catch (Exception e) {
			logger.error("获取登录人信息异常",e.getMessage());
		}

		return this.success(apiService.updateApi(apiDTO));
	}

	/**
	 * 查询
	 * 
	 * @param apiDTO
	 * @return
	 * @author -- lijiangtao 2020年5月24日 下午3:49:14
	 */
	@GetMapping("/interface")
	public Response<?> apiTreeList(ApiDTO apiDTO ,HttpServletRequest request) {
		String userCode=null;
		try {
			userCode= GetUserCodeFromToken.getUserCode(request);
		} catch (Exception e) {
			logger.error("获取登录人信息异常"+e.getMessage());
		}

		return this.success(apiService.apiTreeList(apiDTO));
	}

	/**
	 * 删除
	 *
	 * @param id
	 * @return
	 * @author -- lijiangtao 2020年5月9日 下午4:58:47
	 */
	@DeleteMapping("/interface/{id}")
	public Response<?> deleteApi(@PathVariable String id ,HttpServletRequest request) {

		return this.success(apiService.deleteApi(id));
	}
}
